package cn.iocoder.yudao.module.dr.controller.admin.collectionmanagement.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 藏品 Excel 导入 VO - 索引方案
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false)
@ExcelIgnoreUnannotated
public class CollectionImageImportExcelVO {

    @Schema(description = "总登记号不能为空")
    @ExcelProperty(index = 0) // 藏品关键信息-藏品总登记号
    private String generalAccessionNumber;

    @ExcelProperty(index = 1) // 藏品关键信息-名称（部分有修改过名称，注意核对）
    private String collectionName;

    @ExcelProperty(index = 2) // 藏品关键信息-件数
    private String collectionNum;

    @ExcelProperty(index = 3) // 加工成果数据信息-影像文件名
    private String imageFilename;

    @ExcelProperty(index = 4) // 加工成果数据信息-文件格式
    private String fileFormat;

    @Schema(description = "加工日期")
    @ExcelProperty(index = 5) // 加工成果数据信息-加工日期
    private LocalDateTime processingDate;

    @Schema(description = "加工单位")
    @ExcelProperty(index = 6) // 加工成果数据信息-加工单位
    private String processingUnit;

    @Schema(description = "加工人")
    @ExcelProperty(index = 7) // 加工成果数据信息-加工人
    private String processor;

    @Schema(description = "成果影像质量检查人")
    @ExcelProperty(index = 8) // 加工成果数据信息-成果影像质量检查人
    private String qualityInspector;

    @Schema(description = "文件大小(M)")
    @ExcelProperty(index = 9) // 加工成果数据信息-文件大小(M)
    private BigDecimal fileSize;

    @Schema(description = "分辨率")
    @ExcelProperty(index = 10) // 加工成果数据信息-分辨率
    private String resolution;

    @Schema(description = "拍摄单位")
    @ExcelProperty(index = 11) // 采集数据信息-拍摄单位
    private String shootingUnit;

    @Schema(description = "拍摄地")
    @ExcelProperty(index = 12) // 采集数据信息-拍摄地
    private String shootingLocation;

    @Schema(description = "拍摄日期")
    @ExcelProperty(index = 13) // 采集数据信息-拍摄日期
    private LocalDateTime shootingDate;

    @Schema(description = "拍摄人")
    @ExcelProperty(index = 14) // 采集数据信息-拍摄人
    private String photographer;

    @Schema(description = "拍摄设备品牌型号")
    @ExcelProperty(index = 15) // 采集数据信息-拍摄设备品牌型号
    private String equipmentModel;

    @Schema(description = "拍摄设备品牌型号")
    @ExcelProperty(index = 16) // 采集数据信息-文件格式
    private String fileType;

    @Schema(description = "采集内容")
    @ExcelProperty(index = 17) // 采集数据信息-采集内容
    private String acquisitionContent;

    @Schema(description = "采集影像总数(张)")
    @ExcelProperty(index = 18) // 采集数据信息-采集影像总数(张)
    private Integer totalImages;

    @Schema(description = "采集影像质量检查人")
    @ExcelProperty(index = 19) // 采集数据信息-采集影像质量检查人
    private String acquisitionInspector;
}